﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FastLibrary.Criptografia;
using System.Text;
using FastDATA;

namespace CursoUNICEUB
{
    public partial class LembraSenha : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }


        protected void btnAlterarSenha_Click(object sender, EventArgs e)
        {
            try
            {
                DEAluno aluno = null;
                using (DCCursoDataContext banco = new DCCursoDataContext())
                {
                    var q = from a in banco.DEAlunos
                            where a.Email.Equals(this.txtEmail.Text) &&
                                  a.CPF.Equals(this.txtCPF.Text)
                            select a;

                    aluno = q.FirstOrDefault();
                    if (aluno != null)
                    {
                        string senhaOriginal = GerarSenha();
                        aluno.Senha = Cript.getMD5Hash(senhaOriginal);

                        banco.SubmitChanges();

                        //Enviar email para aluno
                        EmailSender.enviar("Alteracao de senha no site do Curso de C#.net.", "Olá " + aluno.Nome + ", sua senha foi alterada com sucesso. <br/> Sua nova senha é: " + senhaOriginal + "." , this.txtEmail.Text, true);

                        Util.showMessage(this, aluno.Nome + ", sua senha foi alterada", "Login.aspx");  

                    }
                    else
                        
                        Util.showMessage(this, "E-mail ou CPF não encontrado.");  
                  }
            }
            catch (Exception)
            {
                
                Util.showMessage(this, "Não foi possível realizar a troca de senha. Tente mais tarde ou ligue para 8592-4439");  

            }

        }

        public string GerarSenha()
        {
            int Tamanho = 5; // Numero de digitos da senha
            string senha = string.Empty;
            for (int i = 0; i < Tamanho; i++)
            {
                Random random = new Random();
                int codigo = Convert.ToInt32(random.Next(48, 122).ToString());
                if ((codigo >= 48 && codigo <= 57) || (codigo >= 97 && codigo <= 122))
                {
                    string _char = ((char)codigo).ToString();

                    if (!senha.Contains(_char))
                        senha += _char;
                    else
                        i--;
                }
                else
                    i--;
            }

            return senha;
        }
    }
}